package com.example.goods.service;

public interface OrdersService {

    /**
     * 下单
     *
     * @param userId 下单用户ID
     * @param artId     商品ID
     * @param number 数量
     */
    void order(String userId, String artId, int number);


    /**
     * jedis分布式锁下单
     *
     * @param userId 下单用户ID
     * @param artId     商品ID
     * @param number 数量
     */
    void orderJedis(String userId, String artId, int number);

    /**
     * jedis+lua 分布式锁下单
     *
     * @param userId 下单用户ID
     * @param artId     商品ID
     * @param number 数量
     */
    void orderJedisLua(String userId, String artId, int number);

    /**
     * redisson 分布式锁下单
     *  底层还是采用的是
     * @param userId 下单用户ID
     * @param artId     商品ID
     * @param number 数量
     */
    void orderRedisson(String userId, String artId, int number);
}
